package com.sztx.pay.center.dataaccess.dao.mysql;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sztx.pay.center.dataaccess.domain.PlatUserInfoDO;
import com.sztx.pay.center.dataaccess.domain.UserInfoDO;
import com.sztx.pay.center.dataaccess.domain.UserInfoListDO;
import com.sztx.se.dataaccess.mysql.BaseMysqlDAO;
import com.sztx.se.dataaccess.mysql.config.PageQuery;

public interface UserInfoMysqlDAO extends BaseMysqlDAO<UserInfoDO> {

    UserInfoDO listPage(@Param("userInfoDO") UserInfoDO userInfoDO, @Param("pageQuery") PageQuery pageQuery);
    
    Integer listCount(@Param("userInfoDO") UserInfoDO userInfoDO);
    
    UserInfoDO findByUserId(@Param("userId") String userId);    
    
    Integer updateUserInfo(@Param("userId") String userId, @Param("userInfo") UserInfoDO userInfo);
    
    List<UserInfoDO> findUserList(@Param("userInfo") UserInfoDO userInfoDO, @Param("pageQuery") PageQuery pageQuery);
    
    List<PlatUserInfoDO> findPlatUserList(@Param("userInfo") UserInfoDO userInfoDO, @Param("pageQuery") PageQuery pageQuery);
    
    Integer findPlatUserCount(@Param("userInfo") UserInfoDO userInfoDO);
    
    Integer findUserListCount(@Param("userInfo") UserInfoDO userInfoDO);
    
    List<String> findGrayUser(@Param("pageQuery") PageQuery pageQuery);
    
    List<UserInfoListDO> findUserAccountList(@Param("userInfo") UserInfoDO userInfoDO,@Param("pageQuery") PageQuery pageQuery);
    
    Integer findUserAccountCount(@Param("userInfo") UserInfoDO userInfoDO);
    
    Integer queryCollectAmountUserCount(@Param("includeUsers") List<String> includeUsers);
    
}